360影视[官].js 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. var rule = {
  2. title: '360影视[官]',
  3. host: 'https://www.360kan.com',
  4. homeUrl: 'https://api.web.360kan.com/v1/rank?cat=2&size=9',
  5. detailUrl: 'https://api.web.360kan.com/v1/detail?cat=fyclass&id=fyid',
  6. searchUrl: 'https://api.so.360kan.com/index?force_v=1&kw=**&from=&pageno=fypage&v_ap=1&tab=all',
  7. url: 'https://api.web.360kan.com/v1/fyfilter&size=35&pageno=fypage&callback=',
  8. filterable: 1,
  9. filter_url: 'filter/list?catid=fyclass&rank={{fl.排序}}&cat={{fl.类型}}&year={{fl.年代}}&area={{fl.地区}}',
  10. filter: "H4sIAAAAAAAAA+2YS08jRxCA/4vPHGbMvrK3/IJcor1Eq4gDUqIlbLQhkVYrJINt1jYPA8vLa2MgYJtlMdhAiD1e4z8z3TP+Fxm7Xu0oGs2BQBRx81fVXV3V3VNV7XcxO/b8u3exV5NvY89jXrOjyouxsdj0xE+TJv82MfXr5HDgdCBW6eN+8nggDiA2O4bSrZLK1lCKQDov09TJNOoQeF7u2O2WaB4A6fTcqk5soQ6BbdbWVLtDNgHYZrYm6yHwvNy51z2heQA8r/JebCKwL5kd18mSLwCsmz/1ttZIB2DE5210JL4B8Lyt937WoXkA7Kdzorqb5CcA6dwv+/5ZA3UIbLO+5GfKZBOAfckf+Ye8LwCsW1lQ+QvSAbDNZE7PfySbAOJL1VtdYF+GwDbT126Hzg9h9uVACxdOlRpqyZELxxzpwi2kg/Fk/KjWL8jCbquuit1+taBb5zgCYXSEyjd0+4Y3ZAgc9GUjGEFBA/Dh3KyIDoF0/b1PokNgm9sVXTolmwCy3qa53qY5z19sig6B9+HmT9EhsG65oZwq6QAiH077yu0cGodDHOVw4lb8EcqGPw35uMjHTXlc5HFTbovcNuWWyC1Dbn/F8uCnIX8m8mem/KnIn5ryJyJ/Ysofi/yxKZd4bTNeW+K1zXhtidc247UlLtuMy5K4LDMuS+KyzLgsicuSuHTxSm9/Qs3UzPdvJyfejJy6XllXTl5OnXn01HUp4ffWvGRd7+yjtTcT069+eD0jSw2HuK3c6JCpiZnJX0ZGqfy2qnT985Qx6ufXP07PDBx7ORaL31aJ8o8TUhYQopSM0BQXUvbCykI/2VWtecoSAGxz7lol82QTIFIKXyi6ziLpADj2elUtUdlDiJL6Va6pettcvobAWbBS9s93KQsC8HqN5aBI0noAHPvuut6pUOxDMLdNnV0rp05LDmFEHdYwJNO6QBkfQQpj1b2hm4gQqZm4uyIGcFdFLKwYhRWxsOIXVqj0VkPl9tXuATc8xA9l56Hs/OfKzvitlZ1UU+UPvVqCPgtm/qJKe67jyAhh9ne17J1yKQHgbzWRlakIkrw+q2VuAAHYr7Oe38iQUwBmIk3tGYk0APZ2Y09fcbIE4HmFj+4XfikASE65dNurnFOGwL7MLakSvYQQjHzTPyRfECSHXasGrwfAulZLZ6iMIvC+NNZUqkf7AsBZtfvBn6dyiGC+ys7odYVgFBG9WZAiMgD5AC6Mlx5AlBebf/W716EYEHhes+t36WwRWLde1zkqsQj/j1dZ2AvqtBZcD9IB3EuSGeaPR7eVPwJP/ANODQBRGpdBaQ5uduXSKNXA/EXWN2Q2As/u5FW6RVMBojSFYV+WWljvF6gMIETJcHrlWBpwBNbNLXqZJukAWHfR0SnKcAjsS7ujk7Q1CDxv/0AVqQNFMNpPL8sxAMi1cKTpReCr7VyoOmU/BLaZ6gXfPdkE4AzQWw1WoQwAEOWBoRMn4icC60L+y/KKOV2gTIUQ0rjLvM8V4zEAILqyzvENBojSzntHN1JNEOQhtGg82AD+Vk+zdPTCUsP+UN2mMYKZRnzz4mtRI5Du2xeigt9Gj+ttnoz85zcikjfOktf5MPrfoCm6k3wclkv/scl/aNPvvU2XeG0z3n+3fQ9A4rXMeC2J1zLjtSReS+IdeQYg3FeBnv0LfL9z7fwYAAA=",
  11. filter_def: {},
  12. headers: {
  13. 'User-Agent': 'MOBILE_UA'
  14. },
  15. timeout: 5000,
  16. class_name: '电视剧&电影&综艺&动漫',
  17. class_url: '2&1&3&4',
  18. limit: 5,
  19. multi: 1,
  20. searchable: 2,
  21. play_parse: true,
  22. lazy: 'js:input=input.split("?")[0];log(input);',
  23. // 疑似t4专用的
  24. // lazy:'js:input={parse: 1, playUrl: "", jx: 1, url: input.split("?")[0]}',
  25. // 手动调用解析请求json的url,此lazy不方便
  26. // lazy:'js:input="https://cache.json.icu/home/api?type=ys&uid=292796&key=fnoryABDEFJNPQV269&url="+input.split("?")[0];log(input);let html=JSON.parse(request(input));log(html);input=html.url||input',
  27. 推荐: 'json:data;title;cover;comment;cat+ent_id;description',
  28. 一级: 'json:data.movies;title;cover;pubdate;id;description',
  29. 二级: '',
  30. 二级: $js.toString(() => {
  31. let html = JSON.parse(fetch(input, fetch_params));
  32. let data = html.data;
  33. let tilte = data.title;
  34. let img = data.cdncover;
  35. let vod_type = data.moviecategory.join(",");
  36. let area = data.area.join(",");
  37. let director = data.director.join(",");
  38. let actor = data.actor.join(",");
  39. let content = data.description;
  40. let base_vod = {
  41. vod_id: input,
  42. vod_name: tilte,
  43. type_name: vod_type,
  44. vod_actor: actor,
  45. vod_director: director,
  46. vod_content: content,
  47. vod_remarks: area,
  48. vod_pic: urljoin2(input, img)
  49. };
  50. let delta = 50;
  51. let vod_play = {};
  52. let sites = data.playlink_sites;
  53. sites.forEach(function (site) {
  54. let playList = "";
  55. let vodItems = [];
  56. print(data)
  57. if (data.allupinfo) {
  58. let total = parseInt(data.allupinfo[site]);
  59. print(total)
  60. for (let j = 1; j < total; j += delta) {
  61. let end = Math.min(total, j + delta - 1);
  62. print(end)
  63. let url2 = buildUrl(input, { start: j, end: end, site: site });
  64. let vod_data = JSON.parse(fetch(url2), fetch_params).data;
  65. if (vod_data != null) {
  66. if (vod_data.allepidetail) {
  67. vod_data = vod_data.allepidetail[site];
  68. vod_data.forEach(function (item, index) {
  69. vodItems.push((item.playlink_num || "") + "$" + urlDeal(item.url || ""))
  70. })
  71. } else {
  72. vod_data = vod_data.defaultepisode;
  73. vod_data.forEach(function (item, index) {
  74. vodItems.push((item.period || "") + (item.name || "") + "$" + urlDeal(item.url) || "")
  75. })
  76. }
  77. }
  78. }
  79. } else {
  80. let item = data.playlinksdetail[site];
  81. vodItems.push((item.sort || "") + "$" + urlDeal(item.default_url || ""))
  82. } if (vodItems.length > 0) {
  83. playList = vodItems.join("#")
  84. } if (playList.length < 1) {
  85. return
  86. } vod_play[site] = playList
  87. });
  88. let tabs = Object.keys(vod_play);
  89. let playUrls = []; for (let id in tabs) {
  90. print("id:" + id); playUrls.push(vod_play[tabs[id]])
  91. } if (tabs.length > 0) {
  92. let vod_play_from = tabs.join("$$$"); let vod_play_url = playUrls.join("$$$");
  93. base_vod.vod_play_from = vod_play_from;
  94. base_vod.vod_play_url = vod_play_url
  95. }
  96. VOD = base_vod;
  97. }),
  98. 搜索: 'json:data.longData.rows;titleTxt||titlealias;cover;cat_name;cat_id+en_id;description',
  99. }